package com.myself.module.authority.service;

import com.myself.module.ci.authority.login.form.GenerateCodeForm;
import com.myself.module.ci.authority.login.form.LoginEmailCode;
import com.myself.module.ci.authority.login.form.LoginPassword;
import com.myself.module.ci.authority.login.form.RegisterForm;
import com.myself.module.ci.authority.login.vo.TokenVo;

/**
 * @author 瑟瑟发抖
 */
public interface LoginManageService {

    TokenVo generate(String userId);

    /**
     * 检查用户 并且 生成 token
     *
     * @param form 手机号密码登录
     * @return 双token
     */
    TokenVo checkUserByPassword(LoginPassword form);

    /**
     * 检查用户 并且 生成 token
     *
     * @param form 邮箱相关参数
     * @return 双token
     */

    TokenVo checkUserByEmailCode(LoginEmailCode form);

    Boolean generateCode(GenerateCodeForm form);

    TokenVo register(RegisterForm form);
}
